package com.greenold.Appointment.mapper;

import java.util.Date;
import java.util.List;
import com.greenold.Appointment.domain.Appointment;

/**
 * 预约登记Mapper接口
 * 
 * @author ruoyi
 * @date 2025-10-13
 */
public interface AppointmentMapper 
{
    /**
     * 根据userId改变取消次数的值（extend1）
     */
    public Integer updateCancelCountByUserId(String userId);
    /**
     * 根据userId查询取消次数（extend1）
     */
    public Integer selectCancelCountByUserId(String userId);
    /**
     * 根据userId查询更新日期（updatedAt）
     */
    public Date selectUpdatedAtByUserId(String userId);
    /**
     * 清空取消次数（extend1）
     */
     public void updateCancelCountToZero();
    /**
     * 查询预约登记
     * 
     * @param id 预约登记主键
     * @return 预约登记
     */
    public Appointment selectAppointmentById(String id);
    /**
     * 根据传入的手机号查询预约表中是否有记录
     * */
    public Integer selectAppointmentByMobile(String mobile);
    /**
     * 根据传入的userId查询绑定的老人姓名
     * */
    public List<String> selectElderNameByUserId(String userId);
    /**
     * 根据传入的日期查询预约登记列表数量
     * */
    public Integer selectAppointmentCountByDate(String date);
    /**
     * 查询预约登记列表
     * 
     * @param appointment 预约登记
     * @return 预约登记集合
     */
    public List<Appointment> selectAppointmentList(Appointment appointment);

    /**
     * 新增预约登记
     * 
     * @param appointment 预约登记
     * @return 结果
     */
    public int insertAppointment(Appointment appointment);

    /**
     * 修改预约登记
     * 
     * @param appointment 预约登记
     * @return 结果
     */
    public int updateAppointment(Appointment appointment);

    /**
     * 删除预约登记
     * 
     * @param id 预约登记主键
     * @return 结果
     */
    public int deleteAppointmentById(String id);

    /**
     * 批量删除预约登记
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAppointmentByIds(String[] ids);
}
